Designing primitives for everyday users requires a delicate balance between flexibility, security, and ease of use. This talk focuses on the challenge of creating a safe and user-friendly Key Encapsulation Mechanism (KEM) primitive. With the NIST PQC competition algorithm standardizing a single asymmetric encryption algorithm in the form of a KEM, we can expect this to become a staple of future protocols and designs. Tink, an open-source library for secure cryptography, aims to make such tools accessible to everyone. This talk will also make emphasis on general primitive design principles, with a slight focus in Tink’s philosophies.
Designing a KEM with this goal in mind presents unique hurdles. Traditional cryptographic primitives often return non-sensitive data, while a KEM handles highly sensitive secret key material. This, along with other complexities, raises the question: should a KEM even be a tool directly offered to developers? To answer this, we analyzed how Google engineers currently use hybrid encryption, exploring how a KEM could seamlessly integrate into their workflow.